import json
import requests
import asyncio

# host = 'http://172.18.0.93:8503'
host = 'http://127.0.0.1:8503'

async def chat_test(session_id: str, query: str):
    with requests.post(
            url=f"{host}/agent-chat",
            data=json.dumps({
                'session_id': session_id,  # 用户会话session
                'query': query, # 用户提问
                'tools': [],
                'interrupt_feedback': None,  # 中断事件的用户反馈信息，正常会话则应为None
                'history': [],  # 会话历史记录
                'max_steps': 5 # 最大React迭代次数，默认值为5
            }),
            stream=True
    ) as req:
        for line in req.iter_lines():
            text = line.decode('utf-8')
            if text.startswith('data:'):
                print(text)


async def main():
    queries = {
        'session123512': '明天我要到昆明旅游，从成都磨子桥出发，三天，帮我制定一份详尽的计划',
        # 'session45662': '王晓晓是一个大学英语老师，32岁，平时喜欢钓鱼，帮他在成都周边选一个好的钓鱼点',
        # 'session78973': '我本周要去北京出差，乘坐火车明天出发，预计在北京待三天，最好住在三元桥附近',
        # 'session1234567': '我需要帮广西大学数学学院的老师撰写一份他的教学情况分析报告，请给我一份合适的报告模板',
    }
    tasks = [asyncio.create_task(chat_test(session_id, query)) for session_id, query in queries.items()]
    for task in asyncio.as_completed(tasks):
        result = await task
        print(result)


if __name__ == "__main__":
    # asyncio.run(chat_test(
    #     session_id='session1234567',
    #     query="我需要帮广西大学数学学院的老师撰写一份他的教学情况分析报告，请给我一份合适的报告模板")
    # )

    asyncio.run(main())

